package cc.rengu.redp.bizimpl.upmp.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author System
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("T_B_USER_INFO")
public class UpmpUserInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    public static final String DEFAULT_AVATAR = "default.jpg";

    /**
     * 性别
     */
    public static final String SEX_MALE = "0";

    public static final String SEX_FEMALE = "1";

    public static final String SEX_UNKNOW = "2";

    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 机构标识
     */
    @TableField("INST_ID")
    private String instId;

    /**
     * 用户类型 00-统一支付平台内管 01-商户服务 02-第三方应用
     */
    @TableField("USER_TYPE")
    private String userType;

    /**
     * 用户所属主体
     */
    @TableField("USER_INST")
    private String userInst;

    /**
     * 用户标识
     */
    @TableField("USER_ID")
    private String userId;

    /**
     * 用户登录账号
     */
    @TableField("LOGIN_ID")
    private String loginId;

    /**
     * 用户所属机构号
     */
    @TableField("ORG_CODE")
    private String orgCode;

    /**
     * 用户真实姓名
     */
    @TableField("USER_NAME")
    private String userName;

    /**
     * 用户昵称
     */
    @TableField("NICK_NAME")
    private String nickName;

    /**
     * 用户性别
     */
    @TableField("USER_SEX")
    private String userSex;

    /**
     * 用户生日
     */
    @TableField("BIRTHDAY")
    private String birthday;

    /**
     * 手机号码
     */
    @TableField("MOBILE_NO")
    private String mobileNo;

    /**
     * 电子邮箱
     */
    @TableField("EMAIL")
    private String email;

    /**
     * 证件类型
     */
    @TableField("CERT_TYPE")
    private String certType;

    /**
     * 证件号码
     */
    @TableField("CERT_NO")
    private String certNo;

    /**
     * 登录密码
     */
    @TableField("LOGIN_PASSWORD")
    private String loginPassword;

    /**
     * 连续登录密码错误次数
     */
    @TableField("LOGIN_PASSWORD_ERROR_TIMES")
    private Integer loginPasswordErrorTimes;

    /**
     * 登录密码有效期
     */
    @TableField("LOGIN_PASSWORD_EXPIRY_DATE")
    private String loginPasswordExpiryDate;

    /**
     * 前3次修改密码值
     */
    @TableField("LAST_UPDATE_PASSWORD")
    private String lastUpdatePassword;

    /**
     * 交易密码
     */
    @TableField("TRANS_PASSWORD")
    private String transPassword;

    /**
     * 密码加密盐值
     */
    @TableField("TRANS_PASSWORD_SALT")
    private String transPasswordSalt;

    /**
     * 连续交易密码错误次数
     */
    @TableField("TRANS_PASSWORD_ERROR_TIMES")
    private Integer transPasswordErrorTimes;

    /**
     * 前3次修改交易密码值
     */
    @TableField("LAST_UPDATE_TRANS_PASSWORD")
    private String lastUpdateTransPassword;

    /**
     * 用户状态
     */
    @TableField("USER_STATUS")
    private String userStatus;

    /**
     * 注销/冻结原因
     */
    @TableField("CANCEL_FROZEN_REASON")
    private String cancelFrozenReason;

    /**
     * 用户图像存储路径
     */
    @TableField("USER_IMAGE_PATH")
    private String userImagePath;

    /**
     * 登录超时时间
     */
    @TableField("LOGIN_TIME_OUT")
    private String loginTimeOut;

    /**
     * 用户最后登录日期
     */
    @TableField("LAST_LOGIN_DATE")
    private String lastLoginDate;

    /**
     * 创建机构
     */
    @TableField("CRT_ORG_ID")
    private String crtOrgId;

    /**
     * 创建人
     */
    @TableField("OPR_ID")
    private String oprId;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    private String createTime;

    /**
     * 最后修改人
     */
    @TableField("LAST_OPR_ID")
    private String lastOprId;

    /**
     * 最后修改时间
     */
    @TableField("LAST_UPDATE_TIME")
    private String lastUpdateTime;

    /**
     * 备用字段1
     */
    @TableField("REMARK1")
    private String remark1;

    /**
     * 备用字段2
     */
    @TableField("REMARK2")
    private String remark2;

    /**
     * 备用字段3
     */
    @TableField("REMARK3")
    private String remark3;

    @TableField(exist = false)
    private String channelType;

}
